home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / comm / tcp / trace.lha / Trace.amirx next >
Text File  |  1998-02-07  |  1KB  |  54 lines

  1. /* $VER: Trace.amirx 1.2 (6/2/98) ©1998 Robin Cloutman
  2. ** requires AmIRC, Miami, and rexxdossupport.library
  3. ** Performs a trace to a nick/url/server, with optional channel output
  4. */
  5. IF ~SHOW(L,'rexxsupport.library') THEN ADDLIB('rexxsupport.library',0,-30,0)
  6. IF ~SHOW(L,'rexxdossupport.library') THEN ADDLIB('rexxdossupport.library',0,-30,2)
  7. OPTIONS RESULTS
  8. PARSE ARG ARGS
  9. NAME="Trace"
  10. TEMPLATE="URL,SERVER/S,QUIET/S,SAY/S,SHOW/K"
  11. READARGS(ARGS,TEMPLATE)
  12. IF(SERVER) THEN DO
  13.     "GETSERVERNAME"
  14.     URL=RESULT
  15. END
  16. IF(URL="?") THEN DO;CECHO("Usage:" TEMPLATE);EXIT;END
  17. IF(POS(".",URL)=0) THEN DO
  18.     "USERHOST" url
  19.     PARSE VAR RESULT . "@" URL
  20.     IF(URL="") THEN DO
  21.         CECHO("Unknown nick")
  22.         EXIT
  23.     END
  24. END
  25. FILENAME="PIPE:" || NAME || RANDOM(0,1000,TIME("S"))
  26. ADDRESS COMMAND "RUN Miami:MiamiTraceRoute -m 20" URL ">" || FILENAME
  27. CECHO("Tracing" URL)
  28. CALL OPEN(FILE,FILENAME,"READ")
  29. DO UNTIL EOF(FILE)
  30.     TEMP=READLN(FILE)
  31.     IF(QUIET) THEN DO
  32.         PARSE VAR TEMP TEMP ")" .
  33.         IF(TEMP~="") THEN TEMP=TEMP ")"
  34.     END
  35.     IF(TEMP~="") THEN CECHO(TEMP)
  36. END
  37. CECHO("End of trace")
  38. CLOSE(FILE)
  39. EXIT
  40.  
  41. CECHO:
  42. IF(SAY) THEN DO
  43.     IF(LASTTIME=TIME("S")) THEN CALL DELAY(25)
  44.     "SAY" '02'x || "«" || NAME || "»" || '02'x ARG(1)
  45.     LASTTIME=TIME("S")
  46. END
  47. ELSE IF(SHOW~="SHOW") THEN DO
  48.     IF(LASTTIME=TIME("S")) THEN CALL DELAY(25)
  49.     "SAY /msg" SHOW '02'x || "«" || NAME || "»" || '02'x ARG(1)
  50.     LASTTIME=TIME("S")
  51. END
  52. ELSE "ECHO P="d2c(27)"b«" || NAME || "» C=3" ARG(1)
  53. RETURN 0
  54.